/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package uy.edu.ort.dominio;

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;

/**
 *
 * @author Administrador
 */
public class ManejoJSON {
        
    public String ObjetoToJSON(Object clase)
    {
        String retorno = "";
        ObjectMapper mapper = new ObjectMapper();
        try {

            // Generamos la salida a un archivo
            //mapper.writeValue(new File("D:\\json.txt"), clase);
            // mostramos por consola
            retorno = mapper.writeValueAsString(clase);
            System.out.println(retorno);
        } catch (JsonGenerationException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return retorno;
    } 
    
    public Fuente JSONToFuente(String json)
    {
        Fuente f = null;
        ObjectMapper mapper = new ObjectMapper();
        try {

            // Leemos el Json del String pasado como parametro
            f = mapper.readValue(json, Fuente.class);
            
            // mostramos algun atributo
            System.out.println(f.getIdFuente());            
                        
        } catch (JsonGenerationException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return f;
    }
    
    public Noticia JSONToNoticia(String json)
    {
        Noticia n = null;
        ObjectMapper mapper = new ObjectMapper();
        try {

            // Leemos el Json del String pasado como parametro
            n = mapper.readValue(json, Noticia.class);
            
            // mostramos algun atributo
            System.out.println(n.getContenido());            
                        
        } catch (JsonGenerationException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return n;
    }
    
    public ListaTopicos JSONToListaTopicos(String json)
    {
        ListaTopicos lt = null;
        ObjectMapper mapper = new ObjectMapper();
        try {

            // Leemos el Json del String pasado como parametro
            lt = mapper.readValue(json, ListaTopicos.class);
            
            // mostramos algun atributo
            System.out.println(lt.getLista().toString());            
                        
        } catch (JsonGenerationException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return lt;
    }
    
}
